/**
 * This is a generated class and is not intended for modification.  To customize behavior
 * of this value object you may modify the generated sub-class of this class - Countries.as.
 */

package valueObjects
{
import com.adobe.fiber.services.IFiberManagingService;
import com.adobe.fiber.util.FiberUtils;
import com.adobe.fiber.valueobjects.IValueObject;
import flash.events.Event;
import flash.events.EventDispatcher;
import mx.binding.utils.ChangeWatcher;
import mx.collections.ArrayCollection;
import mx.events.PropertyChangeEvent;
import mx.validators.ValidationResult;

import flash.net.registerClassAlias;
import flash.net.getClassByAlias;
import com.adobe.fiber.core.model_internal;
import com.adobe.fiber.valueobjects.IPropertyIterator;
import com.adobe.fiber.valueobjects.AvailablePropertyIterator;

use namespace model_internal;

[ExcludeClass]
public class _Super_Countries extends flash.events.EventDispatcher implements com.adobe.fiber.valueobjects.IValueObject
{
    model_internal static function initRemoteClassAliasSingle(cz:Class) : void
    {
    }

    model_internal static function initRemoteClassAliasAllRelated() : void
    {
    }

    model_internal var _dminternal_model : _CountriesEntityMetadata;
    model_internal var _changedObjects:mx.collections.ArrayCollection = new ArrayCollection();

    public function getChangedObjects() : Array
    {
        _changedObjects.addItemAt(this,0);
        return _changedObjects.source;
    }

    public function clearChangedObjects() : void
    {
        _changedObjects.removeAll();
    }

    /**
     * properties
     */
    private var _internal_country_id : int;
    private var _internal_country_name : String;
    private var _internal_de_DE_country_name : String;
    private var _internal_cz_CZ_country_name : String;
    private var _internal_sk_SK_country_name : String;
    private var _internal_bg_BG_country_name : String;
    private var _internal_nl_NL_country_name : String;
    private var _internal_ru_RU_country_name : String;
    private var _internal_publish_designer : String;
    private var _internal_country_name_short : String;
    private var _internal_en_UK_country_name : String;

    private static var emptyArray:Array = new Array();


    /**
     * derived property cache initialization
     */
    model_internal var _cacheInitialized_isValid:Boolean = false;

    model_internal var _changeWatcherArray:Array = new Array();

    public function _Super_Countries()
    {
        _model = new _CountriesEntityMetadata(this);

        // Bind to own data or source properties for cache invalidation triggering
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "country_name", model_internal::setterListenerCountry_name));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "de_DE_country_name", model_internal::setterListenerDe_DE_country_name));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "cz_CZ_country_name", model_internal::setterListenerCz_CZ_country_name));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "sk_SK_country_name", model_internal::setterListenerSk_SK_country_name));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "bg_BG_country_name", model_internal::setterListenerBg_BG_country_name));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "nl_NL_country_name", model_internal::setterListenerNl_NL_country_name));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "ru_RU_country_name", model_internal::setterListenerRu_RU_country_name));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "publish_designer", model_internal::setterListenerPublish_designer));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "country_name_short", model_internal::setterListenerCountry_name_short));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "en_UK_country_name", model_internal::setterListenerEn_UK_country_name));

    }

    /**
     * data/source property getters
     */

    [Bindable(event="propertyChange")]
    public function get country_id() : int
    {
        return _internal_country_id;
    }

    [Bindable(event="propertyChange")]
    public function get country_name() : String
    {
        return _internal_country_name;
    }

    [Bindable(event="propertyChange")]
    public function get de_DE_country_name() : String
    {
        return _internal_de_DE_country_name;
    }

    [Bindable(event="propertyChange")]
    public function get cz_CZ_country_name() : String
    {
        return _internal_cz_CZ_country_name;
    }

    [Bindable(event="propertyChange")]
    public function get sk_SK_country_name() : String
    {
        return _internal_sk_SK_country_name;
    }

    [Bindable(event="propertyChange")]
    public function get bg_BG_country_name() : String
    {
        return _internal_bg_BG_country_name;
    }

    [Bindable(event="propertyChange")]
    public function get nl_NL_country_name() : String
    {
        return _internal_nl_NL_country_name;
    }

    [Bindable(event="propertyChange")]
    public function get ru_RU_country_name() : String
    {
        return _internal_ru_RU_country_name;
    }

    [Bindable(event="propertyChange")]
    public function get publish_designer() : String
    {
        return _internal_publish_designer;
    }

    [Bindable(event="propertyChange")]
    public function get country_name_short() : String
    {
        return _internal_country_name_short;
    }

    [Bindable(event="propertyChange")]
    public function get en_UK_country_name() : String
    {
        return _internal_en_UK_country_name;
    }

    public function clearAssociations() : void
    {
    }

    /**
     * data/source property setters
     */

    public function set country_id(value:int) : void
    {
        var oldValue:int = _internal_country_id;
        if (oldValue !== value)
        {
            _internal_country_id = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "country_id", oldValue, _internal_country_id));
        }
    }

    public function set country_name(value:String) : void
    {
        var oldValue:String = _internal_country_name;
        if (oldValue !== value)
        {
            _internal_country_name = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "country_name", oldValue, _internal_country_name));
        }
    }

    public function set de_DE_country_name(value:String) : void
    {
        var oldValue:String = _internal_de_DE_country_name;
        if (oldValue !== value)
        {
            _internal_de_DE_country_name = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "de_DE_country_name", oldValue, _internal_de_DE_country_name));
        }
    }

    public function set cz_CZ_country_name(value:String) : void
    {
        var oldValue:String = _internal_cz_CZ_country_name;
        if (oldValue !== value)
        {
            _internal_cz_CZ_country_name = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "cz_CZ_country_name", oldValue, _internal_cz_CZ_country_name));
        }
    }

    public function set sk_SK_country_name(value:String) : void
    {
        var oldValue:String = _internal_sk_SK_country_name;
        if (oldValue !== value)
        {
            _internal_sk_SK_country_name = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "sk_SK_country_name", oldValue, _internal_sk_SK_country_name));
        }
    }

    public function set bg_BG_country_name(value:String) : void
    {
        var oldValue:String = _internal_bg_BG_country_name;
        if (oldValue !== value)
        {
            _internal_bg_BG_country_name = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "bg_BG_country_name", oldValue, _internal_bg_BG_country_name));
        }
    }

    public function set nl_NL_country_name(value:String) : void
    {
        var oldValue:String = _internal_nl_NL_country_name;
        if (oldValue !== value)
        {
            _internal_nl_NL_country_name = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "nl_NL_country_name", oldValue, _internal_nl_NL_country_name));
        }
    }

    public function set ru_RU_country_name(value:String) : void
    {
        var oldValue:String = _internal_ru_RU_country_name;
        if (oldValue !== value)
        {
            _internal_ru_RU_country_name = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "ru_RU_country_name", oldValue, _internal_ru_RU_country_name));
        }
    }

    public function set publish_designer(value:String) : void
    {
        var oldValue:String = _internal_publish_designer;
        if (oldValue !== value)
        {
            _internal_publish_designer = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "publish_designer", oldValue, _internal_publish_designer));
        }
    }

    public function set country_name_short(value:String) : void
    {
        var oldValue:String = _internal_country_name_short;
        if (oldValue !== value)
        {
            _internal_country_name_short = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "country_name_short", oldValue, _internal_country_name_short));
        }
    }

    public function set en_UK_country_name(value:String) : void
    {
        var oldValue:String = _internal_en_UK_country_name;
        if (oldValue !== value)
        {
            _internal_en_UK_country_name = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "en_UK_country_name", oldValue, _internal_en_UK_country_name));
        }
    }

    /**
     * Data/source property setter listeners
     *
     * Each data property whose value affects other properties or the validity of the entity
     * needs to invalidate all previously calculated artifacts. These include:
     *  - any derived properties or constraints that reference the given data property.
     *  - any availability guards (variant expressions) that reference the given data property.
     *  - any style validations, message tokens or guards that reference the given data property.
     *  - the validity of the property (and the containing entity) if the given data property has a length restriction.
     *  - the validity of the property (and the containing entity) if the given data property is required.
     */

    model_internal function setterListenerCountry_name(value:flash.events.Event):void
    {
        _model.invalidateDependentOnCountry_name();
    }

    model_internal function setterListenerDe_DE_country_name(value:flash.events.Event):void
    {
        _model.invalidateDependentOnDe_DE_country_name();
    }

    model_internal function setterListenerCz_CZ_country_name(value:flash.events.Event):void
    {
        _model.invalidateDependentOnCz_CZ_country_name();
    }

    model_internal function setterListenerSk_SK_country_name(value:flash.events.Event):void
    {
        _model.invalidateDependentOnSk_SK_country_name();
    }

    model_internal function setterListenerBg_BG_country_name(value:flash.events.Event):void
    {
        _model.invalidateDependentOnBg_BG_country_name();
    }

    model_internal function setterListenerNl_NL_country_name(value:flash.events.Event):void
    {
        _model.invalidateDependentOnNl_NL_country_name();
    }

    model_internal function setterListenerRu_RU_country_name(value:flash.events.Event):void
    {
        _model.invalidateDependentOnRu_RU_country_name();
    }

    model_internal function setterListenerPublish_designer(value:flash.events.Event):void
    {
        _model.invalidateDependentOnPublish_designer();
    }

    model_internal function setterListenerCountry_name_short(value:flash.events.Event):void
    {
        _model.invalidateDependentOnCountry_name_short();
    }

    model_internal function setterListenerEn_UK_country_name(value:flash.events.Event):void
    {
        _model.invalidateDependentOnEn_UK_country_name();
    }


    /**
     * valid related derived properties
     */
    model_internal var _isValid : Boolean;
    model_internal var _invalidConstraints:Array = new Array();
    model_internal var _validationFailureMessages:Array = new Array();

    /**
     * derived property calculators
     */
    

    /**
     * isValid calculator
     */
    model_internal function calculateIsValid():Boolean
    {
        var violatedConsts:Array = new Array();
        var validationFailureMessages:Array = new Array();

        var propertyValidity:Boolean = true;
        if (!_model.country_nameIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_country_nameValidationFailureMessages);
        }
        if (!_model.de_DE_country_nameIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_de_DE_country_nameValidationFailureMessages);
        }
        if (!_model.cz_CZ_country_nameIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_cz_CZ_country_nameValidationFailureMessages);
        }
        if (!_model.sk_SK_country_nameIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_sk_SK_country_nameValidationFailureMessages);
        }
        if (!_model.bg_BG_country_nameIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_bg_BG_country_nameValidationFailureMessages);
        }
        if (!_model.nl_NL_country_nameIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_nl_NL_country_nameValidationFailureMessages);
        }
        if (!_model.ru_RU_country_nameIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_ru_RU_country_nameValidationFailureMessages);
        }
        if (!_model.publish_designerIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_publish_designerValidationFailureMessages);
        }
        if (!_model.country_name_shortIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_country_name_shortValidationFailureMessages);
        }
        if (!_model.en_UK_country_nameIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_en_UK_country_nameValidationFailureMessages);
        }

        model_internal::_cacheInitialized_isValid = true;
        model_internal::invalidConstraints_der = violatedConsts;
        model_internal::validationFailureMessages_der = validationFailureMessages;
        return violatedConsts.length == 0 && propertyValidity;
    }

    /**
     * derived property setters
     */

    model_internal function set isValid_der(value:Boolean) : void
    {
        var oldValue:Boolean = model_internal::_isValid;
        if (oldValue !== value)
        {
            model_internal::_isValid = value;
            _model.model_internal::fireChangeEvent("isValid", oldValue, model_internal::_isValid);
        }
    }

    /**
     * derived property getters
     */

    [Transient]
    [Bindable(event="propertyChange")]
    public function get _model() : _CountriesEntityMetadata
    {
        return model_internal::_dminternal_model;
    }

    public function set _model(value : _CountriesEntityMetadata) : void
    {
        var oldValue : _CountriesEntityMetadata = model_internal::_dminternal_model;
        if (oldValue !== value)
        {
            model_internal::_dminternal_model = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "_model", oldValue, model_internal::_dminternal_model));
        }
    }

    /**
     * methods
     */


    /**
     *  services
     */
    private var _managingService:com.adobe.fiber.services.IFiberManagingService;

    public function set managingService(managingService:com.adobe.fiber.services.IFiberManagingService):void
    {
        _managingService = managingService;
    }

    model_internal function set invalidConstraints_der(value:Array) : void
    {
        var oldValue:Array = model_internal::_invalidConstraints;
        // avoid firing the event when old and new value are different empty arrays
        if (oldValue !== value && (oldValue.length > 0 || value.length > 0))
        {
            model_internal::_invalidConstraints = value;
            _model.model_internal::fireChangeEvent("invalidConstraints", oldValue, model_internal::_invalidConstraints);
        }
    }

    model_internal function set validationFailureMessages_der(value:Array) : void
    {
        var oldValue:Array = model_internal::_validationFailureMessages;
        // avoid firing the event when old and new value are different empty arrays
        if (oldValue !== value && (oldValue.length > 0 || value.length > 0))
        {
            model_internal::_validationFailureMessages = value;
            _model.model_internal::fireChangeEvent("validationFailureMessages", oldValue, model_internal::_validationFailureMessages);
        }
    }

    model_internal var _doValidationCacheOfCountry_name : Array = null;
    model_internal var _doValidationLastValOfCountry_name : String;

    model_internal function _doValidationForCountry_name(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfCountry_name != null && model_internal::_doValidationLastValOfCountry_name == value)
           return model_internal::_doValidationCacheOfCountry_name ;

        _model.model_internal::_country_nameIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isCountry_nameAvailable && _internal_country_name == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "country_name is required"));
        }

        model_internal::_doValidationCacheOfCountry_name = validationFailures;
        model_internal::_doValidationLastValOfCountry_name = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfDe_DE_country_name : Array = null;
    model_internal var _doValidationLastValOfDe_DE_country_name : String;

    model_internal function _doValidationForDe_DE_country_name(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfDe_DE_country_name != null && model_internal::_doValidationLastValOfDe_DE_country_name == value)
           return model_internal::_doValidationCacheOfDe_DE_country_name ;

        _model.model_internal::_de_DE_country_nameIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isDe_DE_country_nameAvailable && _internal_de_DE_country_name == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "de_DE_country_name is required"));
        }

        model_internal::_doValidationCacheOfDe_DE_country_name = validationFailures;
        model_internal::_doValidationLastValOfDe_DE_country_name = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfCz_CZ_country_name : Array = null;
    model_internal var _doValidationLastValOfCz_CZ_country_name : String;

    model_internal function _doValidationForCz_CZ_country_name(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfCz_CZ_country_name != null && model_internal::_doValidationLastValOfCz_CZ_country_name == value)
           return model_internal::_doValidationCacheOfCz_CZ_country_name ;

        _model.model_internal::_cz_CZ_country_nameIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isCz_CZ_country_nameAvailable && _internal_cz_CZ_country_name == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "cz_CZ_country_name is required"));
        }

        model_internal::_doValidationCacheOfCz_CZ_country_name = validationFailures;
        model_internal::_doValidationLastValOfCz_CZ_country_name = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfSk_SK_country_name : Array = null;
    model_internal var _doValidationLastValOfSk_SK_country_name : String;

    model_internal function _doValidationForSk_SK_country_name(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfSk_SK_country_name != null && model_internal::_doValidationLastValOfSk_SK_country_name == value)
           return model_internal::_doValidationCacheOfSk_SK_country_name ;

        _model.model_internal::_sk_SK_country_nameIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isSk_SK_country_nameAvailable && _internal_sk_SK_country_name == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "sk_SK_country_name is required"));
        }

        model_internal::_doValidationCacheOfSk_SK_country_name = validationFailures;
        model_internal::_doValidationLastValOfSk_SK_country_name = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfBg_BG_country_name : Array = null;
    model_internal var _doValidationLastValOfBg_BG_country_name : String;

    model_internal function _doValidationForBg_BG_country_name(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfBg_BG_country_name != null && model_internal::_doValidationLastValOfBg_BG_country_name == value)
           return model_internal::_doValidationCacheOfBg_BG_country_name ;

        _model.model_internal::_bg_BG_country_nameIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isBg_BG_country_nameAvailable && _internal_bg_BG_country_name == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "bg_BG_country_name is required"));
        }

        model_internal::_doValidationCacheOfBg_BG_country_name = validationFailures;
        model_internal::_doValidationLastValOfBg_BG_country_name = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfNl_NL_country_name : Array = null;
    model_internal var _doValidationLastValOfNl_NL_country_name : String;

    model_internal function _doValidationForNl_NL_country_name(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfNl_NL_country_name != null && model_internal::_doValidationLastValOfNl_NL_country_name == value)
           return model_internal::_doValidationCacheOfNl_NL_country_name ;

        _model.model_internal::_nl_NL_country_nameIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isNl_NL_country_nameAvailable && _internal_nl_NL_country_name == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "nl_NL_country_name is required"));
        }

        model_internal::_doValidationCacheOfNl_NL_country_name = validationFailures;
        model_internal::_doValidationLastValOfNl_NL_country_name = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfRu_RU_country_name : Array = null;
    model_internal var _doValidationLastValOfRu_RU_country_name : String;

    model_internal function _doValidationForRu_RU_country_name(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfRu_RU_country_name != null && model_internal::_doValidationLastValOfRu_RU_country_name == value)
           return model_internal::_doValidationCacheOfRu_RU_country_name ;

        _model.model_internal::_ru_RU_country_nameIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isRu_RU_country_nameAvailable && _internal_ru_RU_country_name == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "ru_RU_country_name is required"));
        }

        model_internal::_doValidationCacheOfRu_RU_country_name = validationFailures;
        model_internal::_doValidationLastValOfRu_RU_country_name = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfPublish_designer : Array = null;
    model_internal var _doValidationLastValOfPublish_designer : String;

    model_internal function _doValidationForPublish_designer(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfPublish_designer != null && model_internal::_doValidationLastValOfPublish_designer == value)
           return model_internal::_doValidationCacheOfPublish_designer ;

        _model.model_internal::_publish_designerIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isPublish_designerAvailable && _internal_publish_designer == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "publish_designer is required"));
        }

        model_internal::_doValidationCacheOfPublish_designer = validationFailures;
        model_internal::_doValidationLastValOfPublish_designer = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfCountry_name_short : Array = null;
    model_internal var _doValidationLastValOfCountry_name_short : String;

    model_internal function _doValidationForCountry_name_short(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfCountry_name_short != null && model_internal::_doValidationLastValOfCountry_name_short == value)
           return model_internal::_doValidationCacheOfCountry_name_short ;

        _model.model_internal::_country_name_shortIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isCountry_name_shortAvailable && _internal_country_name_short == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "country_name_short is required"));
        }

        model_internal::_doValidationCacheOfCountry_name_short = validationFailures;
        model_internal::_doValidationLastValOfCountry_name_short = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfEn_UK_country_name : Array = null;
    model_internal var _doValidationLastValOfEn_UK_country_name : String;

    model_internal function _doValidationForEn_UK_country_name(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfEn_UK_country_name != null && model_internal::_doValidationLastValOfEn_UK_country_name == value)
           return model_internal::_doValidationCacheOfEn_UK_country_name ;

        _model.model_internal::_en_UK_country_nameIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isEn_UK_country_nameAvailable && _internal_en_UK_country_name == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "en_UK_country_name is required"));
        }

        model_internal::_doValidationCacheOfEn_UK_country_name = validationFailures;
        model_internal::_doValidationLastValOfEn_UK_country_name = value;

        return validationFailures;
    }
    

}

}
